Skip to main content

Database Testing

Database testing in Robot Framework is used to validate backend data after UI or API operations. It is commonly used for integration validation rather than full-scale database testing.


Database Testing in Automation Context

Automation engineers use database testing to:

  • Verify data persistence
  • Validate API side effects
  • Confirm UI actions reflect in DB
  • Cross-check business rules

Robot Framework supports DB testing via DatabaseLibrary and similar libraries.


DatabaseLibrary Overview

DatabaseLibrary allows:

  • Connecting to databases
  • Executing SQL queries
  • Fetching and validating results

Supported databases:

  • Oracle
  • MySQL
  • PostgreSQL
  • SQL Server
  • SQLite

Connecting to a Database

Connect To Database    pymysql    dbname    user    password    host    port

Connection is usually done in:

  • Suite Setup
  • Test Setup (if isolation is needed)

Executing Queries

SELECT Queries (Most Common)

${result}=    Query    SELECT * FROM users WHERE id=1

Used for:

  • Validation
  • Data verification
  • Assertions

INSERT / UPDATE / DELETE (Awareness Only)

Automation tests should avoid destructive operations unless:

  • Test data is isolated
  • Transactions are rolled back

Read-only validation is preferred.


Result Validation

Query results are returned as:

  • Lists of tuples

Validation examples:

Should Not Be Empty    ${result}

Database Testing Best Practices

  • Use DB validation only when needed
  • Prefer API validation first
  • Avoid hardcoded data
  • Clean up test data if created
  • Use read-only queries

Common Mistakes ❌

  • Running destructive queries in shared DB
  • Hardcoding credentials
  • Overusing DB validation
  • Skipping cleanup

Key Takeaways

  • Database testing supports backend validation
  • DatabaseLibrary enables SQL execution
  • Use DB checks responsibly
  • Combine with API/UI tests